15-3 蝳·p媬

一個 M 檔案可以包含一個以上的函式,其中有一個主函式(Primary Function),其他則為次函式(Subfunctions),這些次函式只能被同檔案中的函式(可能是主函式或次函式)呼叫,但不可被不同檔案的其他函式呼叫。在一個 M 檔案中,主函式必需出現在最上方,其後即可接上任意數目的次函式,而且次函式的次序並無任何限制。例如:func5.m 包含一個主函式及一個次函式,次函式的功能是計算倒數向量,此 M 檔案的內容可顯示如下:

>> type func5.m function out = func5(x) recip = reciproc(x); out = sum(recip); % Definition for subfunctions function output = reciproc(input) output = 1./input;

此函式可呼叫如下:

>> func5([1 2 3]) ans = 1.8333

此外,您可以在一目錄中建立一個名稱為「private」的私有化目錄(Private Directory),來存放與這目錄相關的函式。例如,假設您有一個目錄 mydir,您可以在 mydir 之下建立一個名為 private 的目錄,那麼 mydir 中的 M 檔案(只限函式)即可呼叫 private 之下的任何函式,而不必再定義其他搜尋路徑。在目錄 private 之下的函式,只能被其父目錄的函式所呼叫,而不能被其他目錄的函式來呼叫。

Hint
目錄 private 的功能只限於函式,而不能用於底稿。

當您從 M 檔案呼叫一個函式時,MATLAB 搜尋此函式的次序如下:

  1. 檢查此函式是否為次函式
  2. 檢查此函式是否為私有化目錄的函式
  3. 從系統所設定的搜尋路徑找尋此函式

在此搜尋過程中,MATLAB 只要找到第一個檔名相符的函式,即會立即取用,而不再繼續搜尋。


MATLAB程式設計:入門篇